#include "driverlib.h"

#define DATA_SECTION(name, st_name, sec_name) \
    __attribute__((section(sec_name))) volatile struct st_name name

DATA_SECTION(AdcaResultRegs, ADC_RESULT_REGS, "AdcaResultRegsFile");
DATA_SECTION(AdcbResultRegs, ADC_RESULT_REGS, "AdcbResultRegsFile");
DATA_SECTION(AdccResultRegs, ADC_RESULT_REGS, "AdccResultRegsFile");
DATA_SECTION(AdcdResultRegs, ADC_RESULT_REGS, "AdcdResultRegsFile");
DATA_SECTION(AdceResultRegs, ADC_RESULT_REGS, "AdceResultRegsFile");
DATA_SECTION(AdcfResultRegs, ADC_RESULT_REGS, "AdcfResultRegsFile");
DATA_SECTION(AdcgResultRegs, ADC_RESULT_REGS, "AdcgResultRegsFile");
DATA_SECTION(AdchResultRegs, ADC_RESULT_REGS, "AdchResultRegsFile");
DATA_SECTION(DmaRegs, DMA_REGS, "DmaRegsFile");
DATA_SECTION(DmaCh1Regs, DMA_CH_REGS, "DmaCH1RegsFile");
DATA_SECTION(DmaCh2Regs, DMA_CH_REGS, "DmaCH2RegsFile");
DATA_SECTION(DmaCh3Regs, DMA_CH_REGS, "DmaCH3RegsFile");
DATA_SECTION(DmaCh4Regs, DMA_CH_REGS, "DmaCH4RegsFile");
DATA_SECTION(DmaCh5Regs, DMA_CH_REGS, "DmaCH5RegsFile");
DATA_SECTION(DmaCh6Regs, DMA_CH_REGS, "DmaCH6RegsFile");
DATA_SECTION(PieCtrlRegs, PIE_CTRL_REGS, "PieCtrlRegsFile");
DATA_SECTION(CpuTimer0Regs, CPUTIMER_REGS, "CpuTimer0RegsFile");
DATA_SECTION(CpuTimer1Regs, CPUTIMER_REGS, "CpuTimer1RegsFile");
DATA_SECTION(CpuTimer2Regs, CPUTIMER_REGS, "CpuTimer2RegsFile");
DATA_SECTION(ExpRegs, EXP_REGS, "ExpRegsFile");
DATA_SECTION(WdRegs, WD_REGS, "WdRegsFile");
DATA_SECTION(Cpu1toCpu2IpcRegs, CPU1TOCPU2_IPC_REGS_CPU1VIEW, "Cpu1toCpu2IpcRegsFile");
DATA_SECTION(Cpu1toCla1IpcRegs, CPU_CLA_IPC_REGS, "Cpu1toCla1IpcRegsFile");
DATA_SECTION(Cla1toCpu1IpcRegs, CPU_CLA_IPC_REGS, "Cla1toCpu1IpcRegsFile");
DATA_SECTION(Cpu2toCpu1IpcRegs, CPU1TOCPU2_IPC_REGS_CPU2VIEW, "Cpu2toCpu1IpcRegsFile");
DATA_SECTION(Cpu2toCla2IpcRegs, CPU_CLA_IPC_REGS, "Cpu2toCla2IpcRegsFile");
DATA_SECTION(Cla2toCpu2IpcRegs, CPU_CLA_IPC_REGS, "Cla2toCpu2IpcRegsFile");
// DATA_SECTION(TraceBufferRegs, TRACE_BUFFER_REGS, "TraceBufferRegsFile");
// DATA_SECTION(WatchPointRegs, WATCH_POINT_REGS, "WatchPointRegsFile");
DATA_SECTION(EccRegs, ECC_REGS, "EccRegsFile");
DATA_SECTION(EradGlobalRegs, ERAD_GLOBAL_REGS, "EradGlobalRegsFile");
DATA_SECTION(EradHWBP1Regs, ERAD_HWBP_REGS, "EradHWBP1RegsFile");
DATA_SECTION(EradHWBP2Regs, ERAD_HWBP_REGS, "EradHWBP2RegsFile");
DATA_SECTION(EradHWBP3Regs, ERAD_HWBP_REGS, "EradHWBP3RegsFile");
DATA_SECTION(EradHWBP4Regs, ERAD_HWBP_REGS, "EradHWBP4RegsFile");
DATA_SECTION(EradHWBP5Regs, ERAD_HWBP_REGS, "EradHWBP5RegsFile");
DATA_SECTION(EradHWBP6Regs, ERAD_HWBP_REGS, "EradHWBP6RegsFile");
DATA_SECTION(EradHWBP7Regs, ERAD_HWBP_REGS, "EradHWBP7RegsFile");
DATA_SECTION(EradHWBP8Regs, ERAD_HWBP_REGS, "EradHWBP8RegsFile");
DATA_SECTION(EradCounter1Regs, ERAD_COUNTER_REGS, "EradCounter1RegsFile");
DATA_SECTION(EradCounter2Regs, ERAD_COUNTER_REGS, "EradCounter2RegsFile");
DATA_SECTION(EradCounter3Regs, ERAD_COUNTER_REGS, "EradCounter3RegsFile");
DATA_SECTION(EradCounter4Regs, ERAD_COUNTER_REGS, "EradCounter4RegsFile");
DATA_SECTION(Cla1Regs, CLA_REGS, "Cla1RegsFile");
DATA_SECTION(XintRegs, XINT_REGS, "XintRegsFile");
DATA_SECTION(NmiIntruptRegs, NMI_INTRUPT_REGS, "NmiIntruptRegsFile");
DATA_SECTION(EPwm1Regs, EPWM_REGS, "EPwm1RegsFile");
DATA_SECTION(EPwm2Regs, EPWM_REGS, "EPwm2RegsFile");
DATA_SECTION(EPwm3Regs, EPWM_REGS, "EPwm3RegsFile");
DATA_SECTION(EPwm4Regs, EPWM_REGS, "EPwm4RegsFile");
DATA_SECTION(EPwm5Regs, EPWM_REGS, "EPwm5RegsFile");
DATA_SECTION(EPwm6Regs, EPWM_REGS, "EPwm6RegsFile");
DATA_SECTION(EPwm7Regs, EPWM_REGS, "EPwm7RegsFile");
DATA_SECTION(EPwm8Regs, EPWM_REGS, "EPwm8RegsFile");
DATA_SECTION(EPwm9Regs, EPWM_REGS, "EPwm9RegsFile");
DATA_SECTION(EPwm10Regs, EPWM_REGS, "EPwm10RegsFile");
DATA_SECTION(EPwm11Regs, EPWM_REGS, "EPwm11RegsFile");
DATA_SECTION(EPwm12Regs, EPWM_REGS, "EPwm12RegsFile");
DATA_SECTION(EPwm13Regs, EPWM_REGS, "EPwm13RegsFile");
DATA_SECTION(EPwm14Regs, EPWM_REGS, "EPwm14RegsFile");
DATA_SECTION(EPwm15Regs, EPWM_REGS, "EPwm15RegsFile");
DATA_SECTION(EPwm16Regs, EPWM_REGS, "EPwm16RegsFile");
DATA_SECTION(EPwm17Regs, EPWM_REGS, "EPwm17RegsFile");
DATA_SECTION(EPwm18Regs, EPWM_REGS, "EPwm18RegsFile");
DATA_SECTION(EQep1Regs, EQEP_REGS, "EQep1RegsFile");
DATA_SECTION(EQep2Regs, EQEP_REGS, "EQep2RegsFile");
DATA_SECTION(EQep3Regs, EQEP_REGS, "EQep3RegsFile");
DATA_SECTION(EQep4Regs, EQEP_REGS, "EQep4RegsFile");
DATA_SECTION(EQep5Regs, EQEP_REGS, "EQep5RegsFile");
DATA_SECTION(EQep6Regs, EQEP_REGS, "EQep6RegsFile");
DATA_SECTION(ECap1Regs, ECAP_REGS, "ECap1RegsFile");
DATA_SECTION(ECap2Regs, ECAP_REGS, "ECap2RegsFile");
DATA_SECTION(ECap3Regs, ECAP_REGS, "ECap3RegsFile");
DATA_SECTION(ECap4Regs, ECAP_REGS, "ECap4RegsFile");
DATA_SECTION(ECap5Regs, ECAP_REGS, "ECap5RegsFile");
DATA_SECTION(ECap6Regs, ECAP_REGS, "ECap6RegsFile");
DATA_SECTION(ECap7Regs, ECAP_REGS, "ECap7RegsFile");
DATA_SECTION(HRCap6Regs, HRCAP_REGS, "HRCap6RegsFile");
DATA_SECTION(HRCap7Regs, HRCAP_REGS, "HRCap7RegsFile");
DATA_SECTION(HRPWMCAL1Regs, HRPWMCAL_REGS, "HRPWMCAL1RegsFile");
DATA_SECTION(HRPWMCAL2Regs, HRPWMCAL_REGS, "HRPWMCAL2RegsFile");
DATA_SECTION(HRPWMCAL3Regs, HRPWMCAL_REGS, "HRPWMCAL3RegsFile");
DATA_SECTION(HHRPWMCAL1Regs, HRPWMCAL_REGS, "HHRPWMCAL1RegsFile");
DATA_SECTION(HHRPWMCAL2Regs, HRPWMCAL_REGS, "HHRPWMCAL2RegsFile");
DATA_SECTION(HHRPWMCAL3Regs, HRPWMCAL_REGS, "HHRPWMCAL3RegsFile");
DATA_SECTION(Cmpss1Regs, CMPSS_REGS, "Cmpss1RegsFile");
DATA_SECTION(Cmpss2Regs, CMPSS_REGS, "Cmpss2RegsFile");
DATA_SECTION(Cmpss3Regs, CMPSS_REGS, "Cmpss3RegsFile");
DATA_SECTION(Cmpss4Regs, CMPSS_REGS, "Cmpss4RegsFile");
DATA_SECTION(Cmpss5Regs, CMPSS_REGS, "Cmpss5RegsFile");
DATA_SECTION(Cmpss6Regs, CMPSS_REGS, "Cmpss6RegsFile");
DATA_SECTION(Cmpss7Regs, CMPSS_REGS, "Cmpss7RegsFile");
DATA_SECTION(Cmpss8Regs, CMPSS_REGS, "Cmpss8RegsFile");
DATA_SECTION(Cmpss9Regs, CMPSS_REGS, "Cmpss9RegsFile");
DATA_SECTION(Cmpss10Regs, CMPSS_REGS, "Cmpss10RegsFile");
DATA_SECTION(Cmpss11Regs, CMPSS_REGS, "Cmpss11RegsFile");
DATA_SECTION(DacaRegs, DAC_REGS, "DacaRegsFile");
DATA_SECTION(DacbRegs, DAC_REGS, "DacbRegsFile");
DATA_SECTION(DaccRegs, DAC_REGS, "DaccRegsFile");
DATA_SECTION(Sdfm1Regs, SDFM_REGS, "Sdfm1RegsFile");
DATA_SECTION(Sdfm2Regs, SDFM_REGS, "Sdfm2RegsFile");
DATA_SECTION(Sdfm3Regs, SDFM_REGS, "Sdfm3RegsFile");
DATA_SECTION(Sdfm4Regs, SDFM_REGS, "Sdfm4RegsFile");
DATA_SECTION(SpiaRegs, SPI_REGS, "SpiaRegsFile");
DATA_SECTION(SpibRegs, SPI_REGS, "SpibRegsFile");
DATA_SECTION(SpicRegs, SPI_REGS, "SpicRegsFile");
DATA_SECTION(SpidRegs, SPI_REGS, "SpidRegsFile");
DATA_SECTION(FsiRxaRegs, FSI_RX_REGS, "FsiRxaRegsFile");
DATA_SECTION(FsiTxaRegs, FSI_TX_REGS, "FsiTxaRegsFile");
DATA_SECTION(FsiRxbRegs, FSI_RX_REGS, "FsiRxbRegsFile");
DATA_SECTION(FsiTxbRegs, FSI_TX_REGS, "FsiTxbRegsFile");
DATA_SECTION(FsiRxcRegs, FSI_RX_REGS, "FsiRxcRegsFile");
DATA_SECTION(FsiRxdRegs, FSI_RX_REGS, "FsiRxdRegsFile");
DATA_SECTION(PmbusaRegs, PMBUS_REGS, "PmbusaRegsFile");
DATA_SECTION(AdcaRegs, ADC_REGS, "AdcaRegsFile");
DATA_SECTION(AdcbRegs, ADC_REGS, "AdcbRegsFile");
DATA_SECTION(AdccRegs, ADC_REGS, "AdccRegsFile");
DATA_SECTION(AdcdRegs, ADC_REGS, "AdcdRegsFile");
DATA_SECTION(AdceRegs, ADC_REGS, "AdceRegsFile");
DATA_SECTION(AdcfRegs, ADC_REGS, "AdcfRegsFile");
DATA_SECTION(AdcgRegs, ADC_REGS, "AdcgRegsFile");
DATA_SECTION(AdchRegs, ADC_REGS, "AdchRegsFile");
DATA_SECTION(EPwmXbarARegs, EPWM_XBAR_REGS, "EPwmXbarARegsFile");
DATA_SECTION(EPwmXbarBRegs, EPWM_XBAR_REGS, "EPwmXbarBRegsFile");
DATA_SECTION(InputXbarRegs, INPUT_XBAR_REGS, "InputXbarRegsFile");
DATA_SECTION(XbarRegs, XBAR_REGS, "XbarRegsFile");
DATA_SECTION(OutputXbarRegs, OUTPUT_XBAR_EXT64_REGS, "OutputXbarRegsFile");
DATA_SECTION(GpioDataRegs, GPIO_DATA_REGS, "GpioDataRegsFile");
DATA_SECTION(GpioDataReadRegs, GPIO_DATA_READ_REGS, "GpioDataReadRegsFile");
DATA_SECTION(GpioDataClaRegs, GPIO_DATA_REGS, "GpioDataClaRegsFile");
DATA_SECTION(GpioDataClaReadRegs, GPIO_DATA_READ_REGS, "GpioDataClaReadRegsFile");
DATA_SECTION(GpioCtrlRegs, GPIO_CTRL_REGS, "GpioCtrlRegsFile");
DATA_SECTION(DevCfgRegs, DEV_CFG_REGS, "DevCfgRegsFile");
DATA_SECTION(SyncSocRegs, SYNC_SOC_REGS, "SyncSocRegsFile");
DATA_SECTION(ClkCfgRegs, CLK_CFG_REGS, "ClkCfgRegsFile");
#ifndef __CORE1__
DATA_SECTION(CpuSysRegs, CPU1_SYS_REGS, "CpuSysRegsFile");
#else
DATA_SECTION(CpuSysRegs, CPU2_SYS_REGS, "CpuSysRegsFile");
#endif
DATA_SECTION(AnalogSubsysRegs, ANALOG_SUBSYS_REGS, "AnalogSubsysRegsFile");
DATA_SECTION(EpgRegs, EPG_REGS, "EpgRegsFile");
DATA_SECTION(ADCSafetyIntEvtAgg1Regs, ADC_SAFECHECK_INTEVT_REGS, "ADCSafetyIntEvtAgg1RegsFile");
DATA_SECTION(ADCSafetyIntEvtAgg2Regs, ADC_SAFECHECK_INTEVT_REGS, "ADCSafetyIntEvtAgg2RegsFile");
DATA_SECTION(ADCSafetyChk1Regs, ADC_SAFECHECK_REGS, "ADCSafetyChk1RegsFile");
DATA_SECTION(ADCSafetyChk2Regs, ADC_SAFECHECK_REGS, "ADCSafetyChk2RegsFile");
DATA_SECTION(ADCSafetyChk3Regs, ADC_SAFECHECK_REGS, "ADCSafetyChk3RegsFile");
DATA_SECTION(ADCSafetyChk4Regs, ADC_SAFECHECK_REGS, "ADCSafetyChk4RegsFile");
DATA_SECTION(ADCSafetyChk5Regs, ADC_SAFECHECK_REGS, "ADCSafetyChk5RegsFile");
DATA_SECTION(ADCSafetyChk6Regs, ADC_SAFECHECK_REGS, "ADCSafetyChk6RegsFile");
DATA_SECTION(ADCSafetyChk7Regs, ADC_SAFECHECK_REGS, "ADCSafetyChk7RegsFile");
DATA_SECTION(ADCSafetyChk8Regs, ADC_SAFECHECK_REGS, "ADCSafetyChk8RegsFile");
DATA_SECTION(CanaRegs, CAN_REGS, "CanaRegsFile");
DATA_SECTION(McanaRegs, CAN_REGS, "McanaRegsFile");
DATA_SECTION(McanbRegs, CAN_REGS, "McanbRegsFile");
DATA_SECTION(Dcc0Regs, DCC_REGS, "Dcc0RegsFile");
DATA_SECTION(Dcc1Regs, DCC_REGS, "Dcc1RegsFile");
DATA_SECTION(Dcc2Regs, DCC_REGS, "Dcc2RegsFile");
DATA_SECTION(LinaRegs, LIN_REGS, "LinaRegsFile");
DATA_SECTION(LinbRegs, LIN_REGS, "LinbRegsFile");
DATA_SECTION(SciaRegs, SCI_REGS, "SciaRegsFile");
DATA_SECTION(ScibRegs, SCI_REGS, "ScibRegsFile");
DATA_SECTION(I2caRegs, I2C_REGS, "I2caRegsFile");
DATA_SECTION(I2cbRegs, I2C_REGS, "I2cbRegsFile");
DATA_SECTION(AesRegs, AES_REGS, "AesRegsFile");
DATA_SECTION(AesSsRegs, AES_SS_REGS, "AesSsRegsFile");
DATA_SECTION(Flash0CtrlRegs, FLASH_CTRL_REGS, "Flash0CtrlRegsFile");
// DATA_SECTION(XintfaRegs, XINTF_REGS, "XintfaRegsFile");
DATA_SECTION(UartaRegs, SCI_REGS, "UartaRegsFile");
DATA_SECTION(UartbRegs, SCI_REGS, "UartbRegsFile");
DATA_SECTION(Clb1LogicCfgRegs, CLB_LOGIC_CONFIG_REGS, "Clb1LogicCfgRegsFile");
DATA_SECTION(Clb1LogicCtrlRegs, CLB_LOGIC_CONTROL_REGS, "Clb1LogicCtrlRegsFile");
DATA_SECTION(Clb1DataExchRegs, CLB_DATA_EXCHANGE_REGS, "Clb1DataExchRegsFile");
DATA_SECTION(Clb2LogicCfgRegs, CLB_LOGIC_CONFIG_REGS, "Clb2LogicCfgRegsFile");
DATA_SECTION(Clb2LogicCtrlRegs, CLB_LOGIC_CONTROL_REGS, "Clb2LogicCtrlRegsFile");
DATA_SECTION(Clb2DataExchRegs, CLB_DATA_EXCHANGE_REGS, "Clb2DataExchRegsFile");
DATA_SECTION(Clb3LogicCfgRegs, CLB_LOGIC_CONFIG_REGS, "Clb3LogicCfgRegsFile");
DATA_SECTION(Clb3LogicCtrlRegs, CLB_LOGIC_CONTROL_REGS, "Clb3LogicCtrlRegsFile");
DATA_SECTION(Clb3DataExchRegs, CLB_DATA_EXCHANGE_REGS, "Clb3DataExchRegsFile");
DATA_SECTION(Clb4LogicCfgRegs, CLB_LOGIC_CONFIG_REGS, "Clb4LogicCfgRegsFile");
DATA_SECTION(Clb4LogicCtrlRegs, CLB_LOGIC_CONTROL_REGS, "Clb4LogicCtrlRegsFile");
DATA_SECTION(Clb4DataExchRegs, CLB_DATA_EXCHANGE_REGS, "Clb4DataExchRegsFile");
DATA_SECTION(Clb5LogicCfgRegs, CLB_LOGIC_CONFIG_REGS, "Clb5LogicCfgRegsFile");
DATA_SECTION(Clb5LogicCtrlRegs, CLB_LOGIC_CONTROL_REGS, "Clb5LogicCtrlRegsFile");
DATA_SECTION(Clb5DataExchRegs, CLB_DATA_EXCHANGE_REGS, "Clb5DataExchRegsFile");
DATA_SECTION(Clb6LogicCfgRegs, CLB_LOGIC_CONFIG_REGS, "Clb6LogicCfgRegsFile");
DATA_SECTION(Clb6LogicCtrlRegs, CLB_LOGIC_CONTROL_REGS, "Clb6LogicCtrlRegsFile");
DATA_SECTION(Clb6DataExchRegs, CLB_DATA_EXCHANGE_REGS, "Clb6DataExchRegsFile");
